home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / c / bc_pas_1.zip / CMIXERS.ASM < prev    next >
Assembly Source File  |  1992-10-20  |  17KB  |  622 lines

  1. ;$Author:   DCODY  $
  2. ;$Date:   20 Oct 1992 10:00:34  $
  3. ;$Header:   X:/sccs/mixers/cmixers.asv   1.3   20 Oct 1992 10:00:34   DCODY  $
  4. ;$Log:   X:/sccs/mixers/cmixers.asv  $
  5. ;  
  6. ;     Rev 1.3   20 Oct 1992 10:00:34   DCODY
  7. ;  adjusted tiny model .data declaration
  8. ;  
  9. ;     Rev 1.2   27 Jul 1992 11:39:40   DCODY
  10. ;  moved 32 bit vector pointers into the data segment
  11. ;  
  12. ;     Rev 1.1   23 Jun 1992 16:45:50   DCODY
  13. ;  PAS2 update
  14. ;  
  15. ;     Rev 1.0   15 Jun 1992 09:41:14   BCRANE
  16. ;  Initial revision.
  17. ;$Logfile:   X:/sccs/mixers/cmixers.asv  $
  18. ;$Modtimes$
  19. ;$Revision:   1.3  $
  20.  
  21.     Title    cMIXERS -- Games Authors 'C' interface to MIXER/VOLUME/CROSS/FILTER
  22.     page    64,131
  23.  
  24. ;   /*\
  25. ;---|*|----====< cMIXERS >====----
  26. ;---|*|
  27. ;---|*|  This module contains the code for supporting the mixers,filter,
  28. ;---|*|  volume control, and PCM I/O with access from 'C'.
  29. ;---|*|
  30. ;   |*|  Media Vision, Inc. Copyright (c) 1991, All Rights Reserved
  31. ;---|*|
  32. ;   \*/
  33.  
  34. ;   /*\
  35. ;---|*|
  36. ;---|*|----------===========================================------------------
  37. ;---|*|----------====< cMIXERS.ASM function defintions >====------------------
  38. ;---|*|----------===========================================------------------
  39. ;---|*|
  40. ;---|*| This function returns a segment:offset to the table of 10 functions
  41. ;---|*| The table is made up of 32 bit pointers to the ten far routines.
  42. ;---|*| Each routine has different register requirements:
  43. ;---|*|
  44. ;---|*|  Function #1 Set a Mixer.
  45. ;---|*|
  46. ;---|*|      void cMVSetMixerFunction(int1,int2,int3);
  47. ;---|*|
  48. ;---|*|         Entry Condition:
  49. ;---|*|           int1 is the setting      (0% - 100%)
  50. ;---|*|           int2 is the mixer select (BI_OUTPUTMIXER | BI_INPUTMIXER)
  51. ;---|*|           int3 is the channel      (ex: BI_L_FM, BI_R_FM, etc.)
  52. ;---|*|
  53. ;---|*|         Exit Condition:
  54. ;---|*|         None
  55. ;---|*|
  56. ;---|*|
  57. ;---|*|  Function #2 Set the Volume/Equalizer device.
  58. ;---|*|
  59. ;---|*|      void cMVSetVolumeFunction(int1,int2);
  60. ;---|*|
  61. ;---|*|         Entry Condition:
  62. ;---|*|           int1 is the setting      (0% - 100%)
  63. ;---|*|           int2 is the volume channel select:
  64. ;---|*|
  65. ;---|*|             BI_VOLLOUD
  66. ;---|*|             BI_VOLENHANCE
  67. ;---|*|             BI_VOLBASS
  68. ;---|*|             BI_VOLTREBLE
  69. ;---|*|             BI_VOLLEFT
  70. ;---|*|             BI_VOLRIGHT
  71. ;---|*|                     BI_VOLMODE
  72. ;---|*|
  73. ;---|*|         Since some of the devices are swithes, a 0% turns it
  74. ;---|*|         off, and a 100% turns it on. The switches are:
  75. ;---|*|
  76. ;---|*|             BI_bVOLLOUD  --  ENHANCED STEREO switch
  77. ;---|*|             BI_bVOLENH     --  LOUDNESS switch
  78. ;---|*|
  79. ;---|*|         Exit Condition:
  80. ;---|*|                 None
  81. ;---|*|
  82. ;---|*|
  83. ;---|*|  Function #3 Set the Filter.
  84. ;---|*|
  85. ;---|*|      void cMVSetFilterFunction(int);
  86. ;---|*|
  87. ;---|*|         Entry Condition:
  88. ;---|*|            int is a new setting    (0% - 100%)
  89. ;---|*|
  90. ;---|*|         0% filters out anything higher than 0k hz (is mute)
  91. ;---|*|           100% filters out anything higher than 20 khz
  92. ;---|*|
  93. ;---|*|         Exit Condition:
  94. ;---|*|                 None
  95. ;---|*|
  96. ;---|*|
  97. ;---|*|  Function #4 Set the Cross Channel.
  98. ;---|*|
  99. ;---|*|      void cMVSetCrossChannel(int);
  100. ;---|*|
  101. ;---|*|         Entry Condition:
  102. ;---|*|            int holds the new cross channel mask bits:
  103. ;---|*|
  104. ;---|*|            00000001b Right to Right
  105. ;---|*|            00000010b Left  to Right
  106. ;---|*|            00000100b Right to Left
  107. ;---|*|            00001000b Left  to Left
  108. ;---|*|
  109. ;---|*|            A set bit turns ON the connection.
  110. ;---|*|            A clear bit turns OFF the connection.
  111. ;---|*|
  112. ;---|*|         Exit Condition:
  113. ;---|*|                 None
  114. ;---|*|
  115. ;---|*|
  116. ;---|*|  Function #5 Get a Mixer setting.
  117. ;---|*|
  118. ;---|*|      int cMVGetMixerFunction(int1,int2);
  119. ;---|*|
  120. ;---|*|         Entry Condition:
  121. ;---|*|           int1 is the mixer select (BI_OUTPUTMIXER | BI_INPUTMIXER)
  122. ;---|*|           int2 is the channel      (ex: BI_L_FM, BI_R_FM, etc.)
  123. ;---|*|
  124. ;---|*|         Exit Condition:
  125. ;---|*|         AX is the setting      (0% - 100%)
  126. ;---|*|
  127. ;---|*|
  128. ;---|*|  Function #6 Get the Volume/Equalizer setting.
  129. ;---|*|
  130. ;---|*|      int cMVGetVolumeFunction(int);
  131. ;---|*|
  132. ;---|*|         Entry Condition:
  133. ;---|*|            int is the volume channel select:
  134. ;---|*|
  135. ;---|*|             BI_VOLLOUD
  136. ;---|*|             BI_VOLENHANCE
  137. ;---|*|             BI_VOLBASS
  138. ;---|*|             BI_VOLTREBLE
  139. ;---|*|             BI_VOLLEFT
  140. ;---|*|             BI_VOLRIGHT
  141. ;---|*|                     BI_VOLMODE
  142. ;---|*|
  143. ;---|*|         Since some of the devices are swithes, a 0% turns it
  144. ;---|*|         off, and a 100% turns it on. The switches are:
  145. ;---|*|
  146. ;---|*|             BI_bVOLLOUD  --  ENHANCED STEREO switch
  147. ;---|*|             BI_bVOLENH     --  LOUDNESS switch
  148. ;---|*|
  149. ;---|*|         Exit Condition:
  150. ;---|*|         AX is the setting      (0% - 100%)
  151. ;---|*|
  152. ;---|*|
  153. ;---|*|  Function #7 Get the Filter setting.
  154. ;---|*|
  155. ;---|*|      int cMVGetFilterFunction();
  156. ;---|*|
  157. ;---|*|         Entry Condition:
  158. ;---|*|           None
  159. ;---|*|
  160. ;---|*|         Exit Condition:
  161. ;---|*|         AX is a new setting    (0% - 100%)
  162. ;---|*|         0% filters out anything higher than 0k hz (is mute)
  163. ;---|*|           100% filters out anything higher than 20 khz
  164. ;---|*|
  165. ;---|*|
  166. ;---|*|  Function #8 Get the Cross Channel setting
  167. ;---|*|
  168. ;---|*|      int cMVGetCrossChannel();
  169. ;---|*|
  170. ;---|*|         Entry Condition:
  171. ;---|*|         None
  172. ;---|*|
  173. ;---|*|         Exit Condition:
  174. ;---|*|         AX holds the new cross channel mask bits:
  175. ;---|*|
  176. ;---|*|            00000001b Right to Right
  177. ;---|*|            00000010b Left  to Right
  178. ;---|*|            00000100b Right to Left
  179. ;---|*|            00001000b Left  to Left
  180. ;---|*|
  181. ;---|*|            A set bit turns ON the connection.
  182. ;---|*|            A clear bit turns OFF the connection.
  183. ;---|*|
  184. ;---|*|
  185. ;---|*|  Function #9 Get/Set the Real Sound bit.
  186. ;---|*|
  187. ;---|*|      int cMVRealSoundSwitch(int1,int2);
  188. ;---|*|
  189. ;---|*|         Entry Condition:
  190. ;---|*|           int1 may hold 0 to clear the bit, 100 to set the bit
  191. ;---|*|           int2 determines if the bit is read or written. If cx
  192. ;---|*|            is 0, the bit is read. If cx is not zero, the
  193. ;---|*|            bit is written.
  194. ;---|*|
  195. ;---|*|         Exit Condition:
  196. ;---|*|         if the bit is read, AX holds 0 for off, 100 for on.
  197. ;---|*|
  198. ;---|*|  Function #10 Get/Set the Split FM chips bit.
  199. ;---|*|
  200. ;---|*|      int cMVFMSplitSwitch(int1,int2);
  201. ;---|*|
  202. ;---|*|         Entry Condition:
  203. ;---|*|           int1 may hold 0 to clear the bit, 100 to set the bit
  204. ;---|*|           int2 determines if the bit is read or written. If cx
  205. ;---|*|            is 0, the bit is read. If cx is not zero, the
  206. ;---|*|            bit is written.
  207. ;---|*|
  208. ;---|*|         Exit Condition:
  209. ;---|*|         if the bit is read, AX holds 0 for off, 100 for on.
  210. ;---|*|
  211. ;   \*/
  212.  
  213. ;   /*\
  214. ;---|*|--------------------====< Code Section >====--------------------
  215. ;   \*/
  216.  
  217.     .xlist
  218.     include model.inc
  219.         include masm.inc
  220.     .list
  221.  
  222. if MODELSIZE eq 0
  223.     .code
  224. else
  225.     .data
  226. endif
  227.  
  228. ;
  229. ; external data
  230. ;
  231.     extrn    MVSetMixerFunction:dword    ; set the mixers
  232.     extrn    MVSetVolumeFunction:dword    ; set the volume
  233.     extrn    MVSetFilterFunction:dword    ; set the filter
  234.     extrn    MVSetCrossChannel:dword     ; set the cross channel
  235.     extrn    MVGetMixerFunction:dword    ; get the mixers
  236.     extrn    MVGetVolumeFunction:dword    ; get the volume
  237.     extrn    MVGetFilterFunction:dword    ; get the filter
  238.     extrn    MVGetCrossChannel:dword     ; get the cross channel
  239.     extrn    MVRealSoundSwitch:dword     ; get/set the realsound bit
  240.     extrn    MVFMSplitSwitch:dword        ; get/set the FM split bit
  241.  
  242.     .code
  243.  
  244. ;
  245. ;   /*\
  246. ;---|*|-----------------------=======================--------------------------
  247. ;---|*|-------------------====< cMVSetMixerFunction >====----------------------
  248. ;---|*|-----------------------=======================--------------------------
  249. ;---|*|
  250. ;---|*|  Function #1 Set a Mixer.
  251. ;---|*|
  252. ;---|*|    void cMVSetMixerFunction(int1,int2,int3);
  253. ;---|*|
  254. ;---|*|      Entry Condition:
  255. ;---|*|        int1 is the setting    (0% - 100%)
  256. ;---|*|        int2 is the mixer select (BI_OUTPUTMIXER | BI_INPUTMIXER)
  257. ;---|*|        int3 is the channel    (ex: BI_L_FM, BI_R_FM, etc.)
  258. ;---|*|
  259. ;---|*|      Exit Condition:
  260. ;---|*|      none
  261. ;---|*|
  262. ;   \*/
  263.  
  264.     public    cMVSetMixerFunction
  265. cMVSetMixerFunction proc
  266.     push    bp
  267.     mov    bp,sp
  268.  
  269.     mov    bx,wParm1
  270.     mov    cx,wParm2
  271.     mov    dx,wParm3
  272.  
  273.     call    [MVSetMixerFunction]
  274.  
  275.     pop    bp
  276.     ret
  277.  
  278. cMVSetMixerFunction endp
  279.  
  280. ;
  281. ;   /*\
  282. ;---|*|----------------------========================-----------------------
  283. ;---|*|------------------====< cMVSetVolumeFunction >====-------------------
  284. ;---|*|----------------------========================-----------------------
  285. ;---|*|
  286. ;---|*|  Function #2 Set the Volume/Equalizer device.
  287. ;---|*|
  288. ;---|*|    void cMVSetVolumeFunction(int1,int2);
  289. ;---|*|
  290. ;---|*|      Entry Condition:
  291. ;---|*|        int1 is the setting    (0% - 100%)
  292. ;---|*|        int2 is the volume channel select:
  293. ;---|*|
  294. ;---|*|          BI_VOLLOUD
  295. ;---|*|          BI_VOLENHANCE
  296. ;---|*|          BI_VOLBASS
  297. ;---|*|          BI_VOLTREBLE
  298. ;---|*|          BI_VOLLEFT
  299. ;---|*|          BI_VOLRIGHT
  300. ;---|*|          BI_VOLMODE
  301. ;---|*|
  302. ;---|*|      Since some of the devices are swithes, a 0% turns it
  303. ;---|*|      off, and a 100% turns it on. The switches are:
  304. ;---|*|
  305. ;---|*|          BI_bVOLLOUD  --  ENHANCED STEREO switch
  306. ;---|*|          BI_bVOLENH   --  LOUDNESS switch
  307. ;---|*|
  308. ;---|*|      Exit Condition:
  309. ;---|*|      none
  310. ;---|*|
  311. ;   \*/
  312.  
  313.     public    cMVSetVolumeFunction
  314. cMVSetVolumeFunction proc
  315.     push    bp
  316.     mov    bp,sp
  317.  
  318.     mov    bx,wParm1
  319.     mov    cx,wParm2
  320.     call    [MVSetVolumeFunction]
  321.  
  322.     pop    bp
  323.     ret
  324.  
  325. cMVSetVolumeFunction endp
  326.  
  327.  
  328. ;   /*\
  329. ;---|*|----------------------========================--------------------------
  330. ;---|*|------------------====< cMVSetFilterFunction >====----------------------
  331. ;---|*|----------------------========================--------------------------
  332. ;---|*|
  333. ;---|*|  Function #3 Set the Filter.
  334. ;---|*|
  335. ;---|*|    void cMVSetFilterFunction(int);
  336. ;---|*|
  337. ;---|*|      Entry Condition:
  338. ;---|*|     int is a new setting    (0% - 100%)
  339. ;---|*|
  340. ;---|*|      0% filters out anything higher than 0k hz (is mute)
  341. ;---|*|        100% filters out anything higher than 20 khz
  342. ;---|*|
  343. ;---|*|      Exit Condition:
  344. ;---|*|      none
  345. ;---|*|
  346. ;   \*/
  347.     public    cMVSetFilterFunction
  348. cMVSetFilterFunction proc
  349.     push    bp
  350.     mov    bp,sp
  351.  
  352.     mov    bx,wParm1
  353.     call    [MVSetFilterFunction]
  354.  
  355.     pop    bp
  356.     ret
  357.  
  358. cMVSetFilterFunction endp
  359.  
  360.  
  361. ;   /*\
  362. ;---|*|-----------------------======================---------------------------
  363. ;---|*|-------------------====< cMVSetCrossChannel >====-----------------------
  364. ;---|*|-----------------------======================---------------------------
  365. ;---|*|
  366. ;---|*|  Function #4 Set the Cross Channel.
  367. ;---|*|
  368. ;---|*|    void cMVSetCrossChannel(int);
  369. ;---|*|
  370. ;---|*|      Entry Condition:
  371. ;---|*|     int holds the new cross channel mask bits:
  372. ;---|*|
  373. ;---|*|         00000001b Right to Right
  374. ;---|*|         00000010b Left  to Right
  375. ;---|*|         00000100b Right to Left
  376. ;---|*|         00001000b Left  to Left
  377. ;---|*|
  378. ;---|*|         A set bit turns ON the connection.
  379. ;---|*|         A clear bit turns OFF the connection.
  380. ;---|*|
  381. ;---|*|      Exit Condition:
  382. ;---|*|      none
  383. ;---|*|
  384. ;   \*/
  385.  
  386.     public    cMVSetCrossChannel
  387. cMVSetCrossChannel proc
  388.     push    bp
  389.     mov    bp,sp
  390.  
  391.     mov    bx,wParm1
  392.     call    [MVSetCrossChannel]
  393.  
  394.     pop    bp
  395.     ret
  396.  
  397. cMVSetCrossChannel endp
  398.  
  399. ;
  400. ;   /*\
  401. ;---|*|----------------------=======================--------------------------
  402. ;---|*|------------------====< cMVGetMixerFunction >====----------------------
  403. ;---|*|----------------------=======================--------------------------
  404. ;---|*|
  405. ;---|*|  Function #5 Get a Mixer setting.
  406. ;---|*|
  407. ;---|*|    int cMVGetMixerFunction(int1,int2);
  408. ;---|*|
  409. ;---|*|      Entry Condition:
  410. ;---|*|        int1 is the mixer select (BI_OUTPUTMIXER | BI_INPUTMIXER)
  411. ;---|*|        int2 is the channel    (ex: BI_L_FM, BI_R_FM, etc.)
  412. ;---|*|
  413. ;---|*|      Exit Condition:
  414. ;---|*|      AX holds the setting    (0% - 100%)
  415. ;---|*|
  416. ;   \*/
  417.  
  418.     public    cMVGetMixerFunction
  419. cMVGetMixerFunction proc
  420.     push    bp
  421.     mov    bp,sp
  422.  
  423.     mov    cx,wParm1
  424.     mov    dx,wParm2
  425.     call    [MVGetMixerFunction]
  426.  
  427.     mov    ax,bx
  428.         pop     bp
  429.     ret
  430.  
  431. cMVGetMixerFunction endp
  432.  
  433. ;
  434. ;   /*\
  435. ;---|*|---------------------========================----------------------
  436. ;---|*|-----------------====< cMVGetVolumeFunction >====------------------------
  437. ;---|*|---------------------========================----------------------
  438. ;---|*|
  439. ;---|*|  Function #6 Get the Volume/Equalizer setting.
  440. ;---|*|
  441. ;---|*|      int cMVGetVolumeFunction(int);
  442. ;---|*|
  443. ;---|*|      Entry Condition:
  444. ;---|*|      CX is the volume channel select:
  445. ;---|*|
  446. ;---|*|          BI_VOLLOUD
  447. ;---|*|          BI_VOLENHANCE
  448. ;---|*|          BI_VOLBASS
  449. ;---|*|          BI_VOLTREBLE
  450. ;---|*|          BI_VOLLEFT
  451. ;---|*|          BI_VOLRIGHT
  452. ;---|*|          BI_VOLMODE
  453. ;---|*|
  454. ;---|*|      Since some of the devices are swithes, a 0% turns it
  455. ;---|*|      off, and a 100% turns it on. The switches are:
  456. ;---|*|
  457. ;---|*|          BI_bVOLLOUD  --  ENHANCED STEREO switch
  458. ;---|*|          BI_bVOLENH   --  LOUDNESS switch
  459. ;---|*|
  460. ;---|*|      Exit Condition:
  461. ;---|*|      AX holds the setting (0% - 100%)
  462. ;---|*|
  463. ;   \*/
  464.  
  465.     public    cMVGetVolumeFunction
  466. cMVGetVolumeFunction proc
  467.     push    bp
  468.     mov    bp,sp
  469.  
  470.     mov    cx,wParm1
  471.     call    [MVGetVolumeFunction]
  472.  
  473.     mov    ax,bx
  474.         pop     bp
  475.     ret
  476.  
  477. cMVGetVolumeFunction endp
  478.  
  479. ;
  480. ;   /*\
  481. ;---|*|----------------------========================--------------------------
  482. ;---|*|------------------====< cMVGetFilterFunction >====----------------------
  483. ;---|*|----------------------========================--------------------------
  484. ;---|*|
  485. ;---|*|  Function #7 Get the Filter setting.
  486. ;---|*|
  487. ;---|*|    int cMVGetFilterFunction();
  488. ;---|*|
  489. ;---|*|      Entry Condition:
  490. ;---|*|        None
  491. ;---|*|
  492. ;---|*|      Exit Condition:
  493. ;---|*|      AX is a new setting    (0% - 100%)
  494. ;---|*|      0% filters out anything higher than 0k hz (is mute)
  495. ;---|*|        100% filters out anything higher than 20 khz
  496. ;---|*|
  497. ;   \*/
  498.  
  499.     public    cMVGetFilterFunction
  500. cMVGetFilterFunction proc
  501.     call    [MVGetFilterFunction]
  502.     mov    ax,bx
  503.     ret
  504.  
  505. cMVGetFilterFunction endp
  506.  
  507. ;
  508. ;   /*\
  509. ;---|*|-----------------------======================---------------------------
  510. ;---|*|-------------------====< cMVGetCrossChannel >====-----------------------
  511. ;---|*|-----------------------======================---------------------------
  512. ;---|*|
  513. ;---|*|  Function #8 Get the Cross Channel setting
  514. ;---|*|
  515. ;---|*|    int cMVGetCrossChannel();
  516. ;---|*|
  517. ;---|*|      Entry Condition:
  518. ;---|*|      None
  519. ;---|*|
  520. ;---|*|      Exit Condition:
  521. ;---|*|      AX holds the new cross channel mask bits:
  522. ;---|*|
  523. ;---|*|         00000001b Right to Right
  524. ;---|*|         00000010b Left  to Right
  525. ;---|*|         00000100b Right to Left
  526. ;---|*|         00001000b Left  to Left
  527. ;---|*|
  528. ;---|*|         A set bit turns ON the connection.
  529. ;---|*|         A clear bit turns OFF the connection.
  530. ;---|*|
  531. ;   \*/
  532. ;
  533.  
  534.     public    cMVGetCrossChannel
  535. cMVGetCrossChannel   proc
  536.     call    [MVGetCrossChannel]
  537.     mov    ax,bx
  538.     ret
  539.  
  540. cMVGetCrossChannel   endp
  541.  
  542. ;
  543. ;   /*\
  544. ;---|*|--------------------======================------------------------------
  545. ;---|*|----------------====< cMVRealSoundSwitch >====--------------------------
  546. ;---|*|--------------------======================------------------------------
  547. ;---|*|
  548. ;---|*|  Function #9 Get/Set the Real Sound bit.
  549. ;---|*|
  550. ;---|*|    int cMVRealSoundSwitch (int1,int2);
  551. ;---|*|
  552. ;---|*|      Entry Condition:
  553. ;---|*|        int1 may hold 0 to clear the bit, 100 to set the bit
  554. ;---|*|        int2 determines if the bit is read or written. If cx
  555. ;---|*|         is 0, the bit is read. If cx is not zero, the
  556. ;---|*|         bit is written.
  557. ;---|*|
  558. ;---|*|      Exit Condition:
  559. ;---|*|      if the bit is read, AX holds 0 for off, 100 for on.
  560. ;---|*|
  561. ;   \*/
  562. ;
  563.     public    cMVRealSoundSwitch
  564. cMVRealSoundSwitch proc
  565.         push    bp
  566.     mov    bp,sp
  567.  
  568.     mov    bx,wParm1
  569.     mov    cx,wParm2
  570.     call    [MVRealSoundSwitch]
  571.  
  572.     mov    ax,bx
  573.         pop     bp
  574.     ret
  575.  
  576. cMVRealSoundSwitch endp
  577.  
  578. ;
  579. ;   /*\
  580. ;---|*|--------------------======================------------------------------
  581. ;---|*|----------------====<  cMVFMSplitSwitch    >====--------------------------
  582. ;---|*|--------------------======================------------------------------
  583. ;---|*|
  584. ;---|*|  Function #10 Get/Set the FM split bit.
  585. ;---|*|
  586. ;---|*|    int cMVFMSplitSwitch   (int1,int2);
  587. ;---|*|
  588. ;---|*|      Entry Condition:
  589. ;---|*|        int1 may hold 0 to clear the bit, 100 to set the bit
  590. ;---|*|        int2 determines if the bit is read or written. If cx
  591. ;---|*|         is 0, the bit is read. If cx is not zero, the
  592. ;---|*|         bit is written.
  593. ;---|*|
  594. ;---|*|      Exit Condition:
  595. ;---|*|      if the bit is read, AX holds 0 for off, 100 for on.
  596. ;---|*|
  597. ;   \*/
  598. ;
  599.     public    cMVFMSplitSwitch
  600. cMVFMSplitSwitch   proc
  601.         push    bp
  602.     mov    bp,sp
  603.  
  604.     mov    bx,wParm1
  605.     mov    cx,wParm2
  606.     call    [MVFMSplitSwitch]
  607.  
  608.     mov    ax,bx
  609.         pop     bp
  610.     ret
  611.  
  612. cMVFMSplitSwitch   endp
  613.  
  614.  
  615. ;   /*\
  616. ;---|*|----====< end of cMIXERS.ASM >====----
  617. ;   \*/
  618.  
  619.     end
  620.  
  621.  
  622.